const express = require('express')
const router = express.Router()
const authMiddleware = require('../middleware/authMiddleware') // 引入 Token 验证中间件
const articleController = require('../controllers/articleControllers')

/**
 * 处理 GET /node/articles 请求，获取所有文章。
 * 
 * @route GET /node/articles
 * @group 文章管理 - 文章相关操作
 * @returns {Array} 200 - 返回文章列表
 * @returns {Error} 500 - 服务器内部错误
 */
router.get('/', articleController.getAllArticles) // 不需要 Token 验证

/**
 * 处理 GET /node/articles/:id 请求，根据 ID 获取单个文章。
 * 
 * @route GET /node/articles/:id
 * @group 文章管理 - 文章相关操作
 * @returns {Object} 200 - 返回文章详情
 * @returns {Error} 404 - 文章未找到
 * @returns {Error} 500 - 服务器内部错误
 */
router.get('/:id', articleController.getArticleById) // 不需要 Token 验证

/**
 * 处理 POST /node/articles 请求，创建新文章。
 * 
 * @route POST /node/articles
 * @group 文章管理 - 文章相关操作
 * @returns {Object} 201 - 返回创建的文章
 * @returns {Error} 400 - 请求参数错误
 * @returns {Error} 500 - 服务器内部错误
 */
router.post('/', authMiddleware, articleController.createArticle) // 需要 Token 验证

/**
 * 处理 PUT /node/articles/:id 请求，更新指定 ID 的文章。
 * 
 * @route PUT /node/articles/:id
 * @group 文章管理 - 文章相关操作
 * @returns {Object} 200 - 返回更新后的文章
 * @returns {Error} 400 - 请求参数错误
 * @returns {Error} 404 - 文章未找到
 * @returns {Error} 500 - 服务器内部错误
 */
router.put('/:id', authMiddleware, articleController.updateArticle) // 需要 Token 验证

/**
 * 处理 DELETE /node/articles/:id 请求，删除指定 ID 的文章。
 * 
 * @route DELETE /articles/:id
 * @group 文章管理 - 文章相关操作
 * @returns {Object} 204 - 删除成功，无返回内容
 * @returns {Error} 404 - 文章未找到
 * @returns {Error} 500 - 服务器内部错误
 */
router.delete('/:id', authMiddleware, articleController.delArticleById) // 需要 Token 验证

module.exports = router